The accessibility and convenience of the Internet (including the web) has rapidly changed the way people access and consume information. Individuals, enterprises, organizations, and governments expose their personal and business information and functionality on the web through software applications, usually referred to as “web applications,” “web apps,” or “apps.” Web applications typically use Internet technologies, protocols, and infrastructures between stationary or mobile computing/communication platforms or nodes. Other networks can be similarly used. A typical web application can use backend file systems, databases, and logging systems to access, process, and store application data for client users. The backend file systems, databases, and logging systems can be accessed by the web application through a variety of conventional operating system calls, database protocols, such as Structured Query Language (SQL) commands, and various network protocols. Additionally, typical web applications can use 3rd party services accessed via application programming interfaces (APIs) or web interfaces and the network.
Web applications provide a high degree of utility and efficiency for an individual or an organization. However, these applications can also be vulnerable to attack from malicious parties using malware or subject to the errant coding of programmers. Malware may include, but is not limited to, spyware, rootkits, password stealers, spam, sources of phishing attacks, sources of denial-of-service-attacks, viruses, loggers, trojans, adware, or any other digital content that produces malicious activity. In some instances, malware may attempt to hijack sensitive information by intercepting or “sniffing” content of an input/output (I/O) operation. I/O operations may include transmissions of data between an application executing on an electronic device and file systems, databases, or peripheral devices of the electronic device (e.g., display devices, keyboards, disk drives, etc.). By attempting to intercept such content, malware may obtain usernames, passwords, financial data, or other sensitive information.
Additionally, it is important and sometimes legally required to audit and verify the security, accuracy, and compliancy of web app processing with appropriate standards. The mere absence of malware is not enough to validate the processing performed by the application. In many cases, large and complex applications are involved in on-going development, enhancement, expansion, updates, and bug fixes. It is important to validate that changes to the application have not caused new problems or deviations from desired functionality.
The increasing reliance on software applications combined with rapidly increasing complexity of these applications can create significant business risk stemming from the use of non-validated software applications. The most efficient way to reduce this risk is to detect and eliminate software application vulnerabilities as early as possible. However, existing systems have been unable to provide application security and auditing functions at low levels of granularity with high levels of configurability and efficiency. Therefore, there exists a need for better systems and methods of performing vulnerability detection in software applications and services.